	LIST   P=PIC16F876a
	#INCLUDE P16F876a.INC
;======================================

	__CONFIG        _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _XT_OSC

TIMER1          EQU     H'20'   	
TIMER2          EQU     H'21'   
TIMER3		EQU	H'22'
ANGLE		EQU	H'23'
COUNTER		EQU	H'24'
TEMP		EQU	H'25'

LCDData			EQU	PORTB
LCDControl		EQU	PORTC
Input			EQU	PORTA

LED			EQU	H'0004' ; 	Debug LED
ResSel			EQU	H'0003'	;	Register Select Signal
ReadWrite		EQU	H'0005'	;	Read Write Signal LCD
Enable			EQU	H'0000' ;	Enable signal LCD
DataBit6		EQU	H'0006' ;
DataBit7		EQU	H'0007' ;

Button1			EQU	H'0002' ;
Button2			EQU	H'0003' ;
Button3			EQU	H'0004' ;
Button4			EQU	H'0005' ;

		ORG	0
		GOTO	RESET
		
; *******************************************************
; *******************************************************
RESET		
		BSF	STATUS,RP0	; reg. Bank 1
		MOVLW	0x00
		MOVWF	TRISB		; RB ports outputs
		MOVWF	PORTB		; RB ports clear
		MOVWF	TRISC		; RC ports outputs
		MOVWF	PORTC		; RC ports clear

		MOVLW	0x06
		MOVWF	ADCON1		; RA ports dig inputs	
		MOVLW	0x3F
		MOVWF	TRISA		; RA ports inputs
		BCF	STATUS,RP0	; reg. Bank 0

		BSF	STATUS,RP0	; reg. Bank 0
		MOVLW	H'ff'
		MOVWF	PR2
		BCF	STATUS,RP0	; reg. Bank 0
		MOVLW	D'127'
		MOVWF	CCPR1L	
		MOVLW	D'127'
		MOVWF	CCPR2L		
		MOVLW	B'00000100'
		MOVWF	T2CON	
		MOVLW	B'00001100'
		MOVWF	CCP1CON	
		MOVWF	CCP2CON	

		CALL	Init_Display
		

PromoScreen
		CALL	Screen_Promo

		MOVLW   D'255'         
                MOVWF   TIMER3         

DELAY3		CALL	DelayShort
                
		DECFSZ	TIMER3,F
		GOTO	DELAY3	

WaitForUser
		CALL	WaiTButtonReleased
		CALL	Screen_Welkom	

		MOVLW   D'255'         
                MOVWF   TIMER3         

DELAY4		CALL	DelayShort
 		BTFSC	Input,Button4
		GOTO	DiffChoices             
 		BTFSC	Input,Button1
		GOTO	PromoScreen 

		DECFSZ	TIMER3,F
		GOTO	DELAY4	

		CALL	Screen_Start

		MOVLW   D'255'         
                MOVWF   TIMER3         

DELAY5		CALL	DelayShort
 		BTFSC	Input,Button4
		GOTO	DiffChoices             
 		BTFSC	Input,Button1
		GOTO	PromoScreen 

		DECFSZ	TIMER3,F
		GOTO	DELAY5	
		
		GOTO	WaitForUser	

DiffChoices
		CALL	Send_ClearScreen

ShowChoiceA	CALL	WaiTButtonReleased
		CALL	Screen_A1

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

		MOVLW   D'255'         
                MOVWF   TIMER3         
DELAY6		CALL	DelayShort
           
 		BTFSC	Input,Button1	; Terug
		GOTO	WaitForUser
 		BTFSC	Input,Button2	; +
		GOTO	ShowChoiceB
 		BTFSC	Input,Button3	; -
		GOTO	ShowChoiceD
 		BTFSC	Input,Button4	; Kies
		GOTO	ChoiceA2  

		DECFSZ	TIMER3,F
		GOTO	DELAY6	

ShowChoiceB	CALL	WaiTButtonReleased
		CALL	Screen_B1

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

		MOVLW   D'255'         
                MOVWF   TIMER3         
DELAY7		CALL	DelayShort

 		BTFSC	Input,Button1	; Terug
		GOTO	WaitForUser
 		BTFSC	Input,Button2	; +
		GOTO	ShowChoiceC
 		BTFSC	Input,Button3	; -
		GOTO	ShowChoiceA
 		BTFSC	Input,Button4	; Kies
		GOTO	ChoiceB2

		DECFSZ	TIMER3,F
		GOTO	DELAY7	

ShowChoiceC	CALL	WaiTButtonReleased
		CALL	Screen_C1

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

		MOVLW   D'255'         
                MOVWF   TIMER3         
DELAY8		CALL	DelayShort

 		BTFSC	Input,Button1	; Terug
		GOTO	WaitForUser
 		BTFSC	Input,Button2	; +
		GOTO	ShowChoiceD
 		BTFSC	Input,Button3	; -
		GOTO	ShowChoiceB
 		BTFSC	Input,Button4	; Kies
		GOTO	ChoiceC4 

		DECFSZ	TIMER3,F
		GOTO	DELAY8	

ShowChoiceD	CALL	WaiTButtonReleased
		CALL	Screen_D1

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

		MOVLW   D'255'         
                MOVWF   TIMER3         
DELAY9		CALL	DelayShort

 		BTFSC	Input,Button1	; Terug
		GOTO	WaitForUser
 		BTFSC	Input,Button2	; +
		GOTO	ShowChoiceA
 		BTFSC	Input,Button3	; -
		GOTO	ShowChoiceC
 		BTFSC	Input,Button4	; Kies
		GOTO	ChoiceD  

		DECFSZ	TIMER3,F
		GOTO	DELAY9	

		GOTO	ShowChoiceA

ChoiceA2
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_A2

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceA
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceA3
 		BTFSC	Input,Button3	; -
		NOP
		GOTO	$-6

ChoiceA3
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_A3

		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceA
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceA4
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceA2
		GOTO	$-6

ChoiceA4
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_A4

		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceA
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceA5
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceA3
		GOTO	$-6

ChoiceA5
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_A5

		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceA
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceA6
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceA4
		GOTO	$-6

ChoiceA6
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_A6

		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceA
 		BTFSC	Input,Button2	; +
		NOP
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceA5
		GOTO	$-6
ChoiceB2
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_B2

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceB
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceB3
 		BTFSC	Input,Button3	; -
		NOP
		GOTO	$-6

ChoiceB3
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_B3

		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceB
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceB4
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceB2
		GOTO	$-6

ChoiceB4
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_B4

		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceB
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceB5
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceB3
		GOTO	$-6

ChoiceB5
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_B5

		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceB
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceB6
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceB4
		GOTO	$-6

ChoiceB6
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_B6

		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceB
 		BTFSC	Input,Button2	; +
		NOP
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceB5
		GOTO	$-6

ChoiceC2
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_C2

		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceC
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceC3
 		BTFSC	Input,Button3	; -
		NOP
		GOTO	$-6

ChoiceC3
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_C3

		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceC
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceC4
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceC2
		GOTO	$-6

ChoiceC4
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_C4

		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'178'		; 1.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceC
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceC5
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceC3
		GOTO	$-6

ChoiceC5
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_C5

		MOVLW	D'204'		; 2.0 bar
		MOVWF	CCPR1L	
		MOVLW	D'153'		; 1.0 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceC
 		BTFSC	Input,Button2	; +
		GOTO	ChoiceC6
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceC4
		GOTO	$-6

ChoiceC6
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_C6

		MOVLW	D'230'		; 2.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'127'		; 0.5 bar
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceC
 		BTFSC	Input,Button2	; +
		NOP
 		BTFSC	Input,Button3	; -
		GOTO	ChoiceC4
		GOTO	$-6
ChoiceD
		CALL	Send_ClearScreen
 		CALL	WaiTButtonReleased
		CALL	Screen_D2

		MOVLW	D'178'		; 2.5 bar
		MOVWF	CCPR1L	
		MOVLW	D'178'		; 0.5 bar
		MOVWF	CCPR2L	

		MOVLW	D'52'
		MOVWF	ANGLE

StartCountDown
		MOVLW	D'103'
		MOVWF	COUNTER
CountDown
		MOVF	COUNTER,W
		MOVWF	ANGLE		
		CALL 	SET_Pressures		

		DECFSZ	COUNTER
		GOTO 	StartCountUP
		
		CALL 	DelayShort

		GOTO	CountDown
StartCountUP
		MOVLW	D'103'
		MOVWF	COUNTER
CountUp
		MOVLW	D'103'
		MOVWF	TEMP
		MOVF	COUNTER,W
		SUBWF	TEMP
		MOVWF	ANGLE
		CALL 	SET_Pressures		

		DECFSZ	COUNTER
		GOTO 	StartCountDown
		
		CALL 	DelayShort

		GOTO	CountUp

SET_Pressures
		MOVF	ANGLE,W
		ADDLW	D'127'
		MOVWF	CCPR1L
		MOVLW	D'230'
		MOVWF	TEMP
		MOVF	ANGLE,W
		SUBWF	TEMP
		MOVWF	CCPR2L	

 		BTFSC	Input,Button1	; Terug
		GOTO	ShowChoiceD

		RETURN




 ; ***********************************************************************************

WaiTButtonReleased
 		BTFSC	Input,Button1
		GOTO	WaiTButtonReleased 		
		BTFSC	Input,Button2
		GOTO	WaiTButtonReleased
		BTFSC	Input,Button3
		GOTO	WaiTButtonReleased
		BTFSC	Input,Button4
		GOTO	WaiTButtonReleased
		RETURN

;		**************************
;               *        delay  routine: *
;               **************************





DelayShort	MOVLW   D'255'          ;*
                MOVWF   TIMER1          ;*
                ;
DELAY		MOVLW	D'20'	
		MOVWF	TIMER2
		DECFSZ  TIMER2,F        ;*
                GOTO    $-1             ;*
                
		DECFSZ	TIMER1,F
		GOTO	DELAY	
		RETLW   0

SendInit	MOVWF	LCDData
		BTFSS	LCDData,DataBit6
		BCF	LCDControl,DataBit6
		BTFSC	LCDData,DataBit6
		BSF	LCDControl,DataBit6
		BTFSS	LCDData,DataBit7
		BCF	LCDControl,DataBit7
		BTFSC	LCDData,DataBit7
		BSF	LCDControl,DataBit7
		BCF	LCDControl,Enable
		BSF	LCDControl,Enable

		MOVLW   D'255'          ;*
                MOVWF   TIMER1          ;*
                ;
DELAY1		MOVLW	D'30'			; 25 msec
		MOVWF	TIMER2
		DECFSZ  TIMER2,F        ;*
                GOTO    $-1             ;*
                
		DECFSZ	TIMER1,F
		GOTO	DELAY1	
		RETLW   0

SendData	MOVWF	LCDData
		BTFSS	LCDData,DataBit6
		BCF	LCDControl,DataBit6
		BTFSC	LCDData,DataBit6
		BSF	LCDControl,DataBit6
		BTFSS	LCDData,DataBit7
		BCF	LCDControl,DataBit7
		BTFSC	LCDData,DataBit7
		BSF	LCDControl,DataBit7
		BCF	LCDControl,Enable
		BSF	LCDControl,Enable

		MOVLW   D'255'          ;*
                MOVWF   TIMER1          ;*
                ;
DELAY2		MOVLW	D'2'			; x msec
		MOVWF	TIMER2
		DECFSZ  TIMER2,F        ;*
                GOTO    $-1             ;*
                
		DECFSZ	TIMER1,F
		GOTO	DELAY2	
		RETLW   0


 ; *********************************************************************

 ; *********************************************************************

 ; *********************************************************************

Screen_Promo
		CALL Send_ClearScreen
		CALL Send_V			; 01
		CALL Send_U			; 02
		CALL Send_B			; 03
		CALL Send_Minus		; 04
		CALL Send_T			; 05
		CALL Send_W			; 06
		CALL Send_Minus		; 07
		CALL Send_W			; 08
		CALL Send_E			; 09
		CALL Send_R			; 10
		CALL Send_K			; 11
		CALL Send_Minus		; 12
		CALL Send_M			; 13
		CALL Send_B			; 14
		CALL Send_M			; 15
		CALL Send_Exclamation	; 16
		
		CALL Send_NextLine
		CALL Send_2 			; 01
		CALL Send_0			; 02
		CALL Send_0			; 03
		CALL Send_4		; 04
		CALL Send_Space		; 05
		CALL Send_R			; 06
		CALL Send_V			; 07
		CALL Send_H			; 08
		CALL Send_Space			; 09
		CALL Send_B		; 10
		CALL Send_V		; 11
		CALL Send_D		; 12
		CALL Send_B			; 13
		CALL Send_Space			; 14
		CALL Send_B			; 15
		CALL Send_V			; 16
		RETURN

Screen_Welkom
		CALL Send_ClearScreen
		CALL Send_Space		; 01
		CALL Send_W			; 02
		CALL Send_E			; 03
		CALL Send_L			; 04
		CALL Send_K			; 05
		CALL Send_O			; 06
		CALL Send_M			; 07
		CALL Send_Space		; 08
		CALL Send_O			; 09
		CALL Send_P			; 10
		CALL Send_Space		; 11
		CALL Send_H			; 12
		CALL Send_E			; 13
		CALL Send_T			; 14
		CALL Send_Space		; 15
		CALL Send_Space 	; 16
		
		CALL Send_NextLine
		CALL Send_W 			; 01
		CALL Send_E			; 02
		CALL Send_T			; 03
		CALL Send_E			; 04
		CALL Send_N			; 05
		CALL Send_S			; 06
		CALL Send_C			; 07
		CALL Send_H			; 08
		CALL Send_A			; 09
		CALL Send_P			; 10
		CALL Send_S			; 11
		CALL Send_F			; 12
		CALL Send_E			; 13
		CALL Send_E			; 14
		CALL Send_S			; 15
		CALL Send_T			; 16
		RETURN

Screen_Start
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_e			; 02
		CALL Send_Space		; 03
		CALL Send_S			; 04
		CALL Send_t			; 05
		CALL Send_e			; 06
		CALL Send_r			; 07
		CALL Send_k			; 08
		CALL Send_s			; 09
		CALL Send_t			; 10
		CALL Send_e			; 11
		CALL Send_Space			; 12
		CALL Send_A			; 13
		CALL Send_r			; 14
		CALL Send_m			; 15
		CALL Send_Exclamation	; 16
		
		CALL Send_NextLine
		CALL Send_ArrowKies		; 01
		CALL Send_Space			; 02
		CALL Send_Space			; 03
		CALL Send_R			; 04
		CALL Send_o			; 05
		CALL Send_b			; 06
		CALL Send_o		; 07
		CALL Send_t			; 08
		CALL Send_Space		; 09
		CALL Send_ArrowLeft		; 10
		CALL Send_ArrowRight		; 11
		CALL Send_Space			; 12
		CALL Send_M			; 13
		CALL Send_e			; 14
		CALL Send_n			; 15
		CALL Send_s		; 16
		RETURN

Screen_A1
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_u			; 02
		CALL Send_r			; 03
		CALL Send_f			; 04
		CALL Send_Space			; 05
		CALL Send_j			; 06
		CALL Send_e			; 07
		CALL Send_Space			; 08
		CALL Send_h			; 09
		CALL Send_e			; 10
		CALL Send_t			; 11
		CALL Send_Space			; 12
		CALL Send_a			; 13
		CALL Send_a			; 14
		CALL Send_n			; 15
		CALL Send_Question		; 16
		
		CALL Send_NextLine
		CALL Send_ArrowKies		; 01
		CALL Send_Space		; 02
		CALL Send_Space		; 03
		CALL Send_Space		; 04
		CALL Send_Space		; 05
		CALL Send_Space		; 06
		CALL Send_Space		; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_Space		; 10
		CALL Send_Space		; 11
		CALL Send_Space		; 12
		CALL Send_Space		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN

Screen_A2
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_i			; 02
		CALL Send_t			; 03
		CALL Send_Space		; 04
		CALL Send_i			; 05
		CALL Send_s			; 06
		CALL Send_Space		; 07
		CALL Send_o			; 08
		CALL Send_p			; 09
		CALL Send_w			; 10
		CALL Send_a			; 11
		CALL Send_r			; 12
		CALL Send_m			; 13
		CALL Send_i			; 14
		CALL Send_n			; 15
		CALL Send_g			; 16
		
		CALL Send_NextLine
		CALL Send_Space		; 01
		CALL Send_Space		; 02
		CALL Send_Space		; 03
		CALL Send_Space		; 04
		CALL Send_Space		; 05
		CALL Send_Space		; 06
		CALL Send_Space		; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_L			; 10
		CALL Send_e			; 11
		CALL Send_v			; 12
		CALL Send_e			; 13
		CALL Send_l			; 14
		CALL Send_Dubbel		; 15
		CALL Send_1			; 16
		RETURN

Screen_A3
		CALL Send_ClearScreen
		CALL Send_M			; 01
		CALL Send_a			; 02
		CALL Send_g			; 03
		CALL Send_Space		; 04
		CALL Send_h			; 05
		CALL Send_e			; 06
		CALL Send_t			; 07
		CALL Send_Space		; 08
		CALL Send_n			; 09
		CALL Send_o			; 10
		CALL Send_g			; 11
		CALL Send_Space		; 12
		CALL Send_w			; 13
		CALL Send_a			; 14
		CALL Send_t			; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_m			; 01
		CALL Send_e			; 02
		CALL Send_e			; 03
		CALL Send_r			; 04
		CALL Send_Question		; 05
		CALL Send_Space		; 06
		CALL Send_Space		; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_L			; 10
		CALL Send_e			; 11
		CALL Send_v			; 12
		CALL Send_e			; 13
		CALL Send_l			; 14
		CALL Send_Dubbel		; 15
		CALL Send_2			; 16
		RETURN

Screen_A4
		CALL Send_ClearScreen
		CALL Send_A			; 01
		CALL Send_l			; 02
		CALL Send_Space		; 03
		CALL Send_a			; 04
		CALL Send_a			; 05
		CALL Send_n			; 06
		CALL Send_Space		; 07
		CALL Send_h			; 08
		CALL Send_e			; 09
		CALL Send_t			; 10
		CALL Send_Space		; 11
		CALL Send_Space		; 12
		CALL Send_Space		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_z			; 01
		CALL Send_w			; 02
		CALL Send_e			; 03
		CALL Send_t			; 04
		CALL Send_e			; 05
		CALL Send_n			; 06
		CALL Send_Question		; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_L			; 10
		CALL Send_e			; 11
		CALL Send_v			; 12
		CALL Send_e			; 13
		CALL Send_l			; 14
		CALL Send_Dubbel		; 15
		CALL Send_3			; 16
		RETURN

Screen_A5
		CALL Send_ClearScreen
		CALL Send_G			; 01
		CALL Send_a			; 02
		CALL Send_a			; 03
		CALL Send_t			; 04
		CALL Send_Space		; 05
		CALL Send_h			; 06
		CALL Send_e			; 07
		CALL Send_t			; 08
		CALL Send_Space		; 09
		CALL Send_n			; 10
		CALL Send_o			; 11
		CALL Send_g			; 12
		CALL Send_Question		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_Space		; 01
		CALL Send_Space		; 02
		CALL Send_Space		; 03
		CALL Send_Space		; 04
		CALL Send_Space		; 05
		CALL Send_Space		; 06
		CALL Send_Space		; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_L			; 10
		CALL Send_e			; 11
		CALL Send_v			; 12
		CALL Send_e			; 13
		CALL Send_l			; 14
		CALL Send_Dubbel		; 15
		CALL Send_4			; 16
		RETURN

Screen_A6
		CALL Send_ClearScreen
		CALL Send_E			; 01
		CALL Send_c			; 02
		CALL Send_h			; 03
		CALL Send_t			; 04
		CALL Send_Space		; 05
		CALL Send_e			; 06
		CALL Send_e			; 07
		CALL Send_n			; 08
		CALL Send_Space		; 09
		CALL Send_k			; 10
		CALL Send_r			; 11
		CALL Send_a			; 12
		CALL Send_c			; 13
		CALL Send_h			; 14
		CALL Send_t			; 15
		CALL Send_Minus		; 16
		
		CALL Send_NextLine
		CALL Send_p			; 01
		CALL Send_a			; 02
		CALL Send_t			; 03
		CALL Send_s			; 04
		CALL Send_t			; 05
		CALL Send_e			; 06
		CALL Send_r			; 07
		CALL Send_Exclamation	; 08
		CALL Send_Space		; 09
		CALL Send_L			; 10
		CALL Send_e			; 11
		CALL Send_v			; 12
		CALL Send_e			; 13
		CALL Send_l			; 14
		CALL Send_Dubbel		; 15
		CALL Send_5			; 16
		RETURN

Screen_B1
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_E			; 02
		CALL Send_M			; 03
		CALL Send_O			; 04
		CALL Send_Space		; 05
		CALL Send_a			; 06
		CALL Send_a			; 07
		CALL Send_n			; 08
		CALL Send_p			; 09
		CALL Send_a			; 10
		CALL Send_s			; 11
		CALL Send_b			; 12
		CALL Send_a			; 13
		CALL Send_r			; 14
		CALL Send_e			; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_ArrowKies	; 01
		CALL Send_Space		; 02
		CALL Send_Space		; 03
		CALL Send_s			; 04
		CALL Send_t			; 05
		CALL Send_i			; 06
		CALL Send_j			; 07
		CALL Send_f			; 08
		CALL Send_h			; 09
		CALL Send_e			; 10
		CALL Send_i			; 11
		CALL Send_d			; 12
		CALL Send_Space		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN

Screen_B_All
		CALL Send_NextLine
		CALL Send_Space		; 01
		CALL Send_Minus		; 02
		CALL Send_Space		; 03
		CALL Send_s			; 04
		CALL Send_t			; 05
		CALL Send_i			; 06
		CALL Send_j			; 07
		CALL Send_f			; 08
		CALL Send_h			; 09
		CALL Send_e			; 10
		CALL Send_i			; 11
		CALL Send_d			; 12
		CALL Send_Space		; 13
		CALL Send_Plus		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN
Screen_B2
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_0			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_0			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_B_All
		RETURN

Screen_B3
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_1			; 02
		CALL Send_Point		; 03
		CALL Send_0			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_1			; 11
		CALL Send_Point		; 12
		CALL Send_0			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_B_All
		RETURN

Screen_B4
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_1			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_1			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_B_All
		RETURN

Screen_B5
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_2			; 02
		CALL Send_Point		; 03
		CALL Send_0			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_2			; 11
		CALL Send_Point		; 12
		CALL Send_0			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_B_All
		RETURN

Screen_B6
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_2			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_2			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_B_All
		RETURN

Screen_C1
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_E			; 02
		CALL Send_M			; 03
		CALL Send_O			; 04
		CALL Send_Space			; 05
		CALL Send_a			; 06
		CALL Send_a			; 07
		CALL Send_n			; 08
		CALL Send_p			; 09
		CALL Send_a			; 10
		CALL Send_s			; 11
		CALL Send_b			; 12
		CALL Send_a			; 13
		CALL Send_r			; 14
		CALL Send_e			; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_ArrowKies	; 01
		CALL Send_Space		; 02
		CALL Send_Space		; 03
		CALL Send_Space		; 04
		CALL Send_p			; 05
		CALL Send_o			; 06
		CALL Send_s			; 07
		CALL Send_i			; 08
		CALL Send_t			; 09
		CALL Send_i			; 10
		CALL Send_e			; 11
		CALL Send_Space		; 12
		CALL Send_Space		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN

Screen_C_All
		CALL Send_NextLine
		CALL Send_Space		; 01
		CALL Send_Space		; 02
		CALL Send_Minus		; 03
		CALL Send_Space		; 04
		CALL Send_p			; 05
		CALL Send_o			; 06
		CALL Send_s			; 07
		CALL Send_i			; 08
		CALL Send_t			; 09
		CALL Send_i			; 10
		CALL Send_e			; 11
		CALL Send_Space		; 12
		CALL Send_Plus		; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN
Screen_C2
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_0			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_2			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_C_All
		RETURN

Screen_C3
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_1			; 02
		CALL Send_Point		; 03
		CALL Send_0			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_2			; 11
		CALL Send_Point		; 12
		CALL Send_0			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_C_All
		RETURN

Screen_C4
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_1			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_1			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_C_All
		RETURN

Screen_C5
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_2			; 02
		CALL Send_Point		; 03
		CALL Send_0			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_1			; 11
		CALL Send_Point		; 12
		CALL Send_0			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_C_All
		RETURN

Screen_C6
		CALL Send_GoHome
		CALL Send_ArrowUp		; 01
		CALL Send_2			; 02
		CALL Send_Point		; 03
		CALL Send_5			; 04
		CALL Send_b			; 05
		CALL Send_a			; 06
		CALL Send_r			; 07
		CALL Send_Space		; 08
		CALL Send_Space		; 09
		CALL Send_ArrowDown		; 10
		CALL Send_0			; 11
		CALL Send_Point		; 12
		CALL Send_5			; 13
		CALL Send_b			; 14
		CALL Send_a			; 15
		CALL Send_r			; 16
		CALL Screen_C_All
		RETURN

Screen_D1
		CALL Send_ClearScreen
		CALL Send_A			; 01
		CALL Send_n			; 02
		CALL Send_t			; 03
		CALL Send_a			; 04
		CALL Send_g			; 05
		CALL Send_o			; 06
		CALL Send_n			; 07
		CALL Send_i			; 08
		CALL Send_s			; 09
		CALL Send_t			; 10
		CALL Send_i			; 11
		CALL Send_s			; 12
		CALL Send_c			; 13
		CALL Send_h			; 14
		CALL Send_e			; 15
		CALL Send_Space		; 16
		
		CALL Send_NextLine
		CALL Send_ArrowKies			; 01
		CALL Send_Space			; 02
		CALL Send_Space			; 03
		CALL Send_Space			; 04
		CALL Send_w			; 05
		CALL Send_e			; 06
		CALL Send_r			; 07
		CALL Send_k		; 08
		CALL Send_i		; 09
		CALL Send_n		; 10
		CALL Send_g		; 11
		CALL Send_Space		; 12
		CALL Send_D			; 13
		CALL Send_E			; 14
		CALL Send_M			; 15
		CALL Send_O			; 16
		RETURN

Screen_D2
		CALL Send_ClearScreen
		CALL Send_D			; 01
		CALL Send_e			; 02
		CALL Send_m			; 03
		CALL Send_o			; 04
		CALL Send_Space		; 05
		CALL Send_b			; 06
		CALL Send_e			; 07
		CALL Send_w			; 08
		CALL Send_e			; 09
		CALL Send_g			; 10
		CALL Send_i			; 11
		CALL Send_n			; 12
		CALL Send_g			; 13
		CALL Send_Space		; 14
		CALL Send_Space		; 15
		CALL Send_1		; 16
		
		CALL Send_NextLine
		CALL Send_Space		; 01
		CALL Send_Space		; 02
		CALL Send_Minus		; 03
		CALL Send_Space		; 04
		CALL Send_s			; 05
		CALL Send_n			; 06
		CALL Send_e			; 07
		CALL Send_l			; 08
		CALL Send_h			; 09
		CALL Send_e			; 10
		CALL Send_i			; 11
		CALL Send_d			; 12
		CALL Send_Space		; 13
		CALL Send_Plus		; 14
		CALL Send_Space		; 15
		CALL Send_Space		; 16
		RETURN

 ; *********************************************************************

 ; *********************************************************************

 ; *********************************************************************

Send_A		MOVLW	A'A'	
		GOTO	SendData 
Send_B		MOVLW	A'B'	
		GOTO	SendData 
Send_C		MOVLW	A'C'	
		GOTO	SendData 
Send_D		MOVLW	A'D'	
		GOTO	SendData 
Send_E		MOVLW	A'E'	
		GOTO	SendData 
Send_F		MOVLW	A'F'	
		GOTO	SendData 
Send_G		MOVLW	A'G'	
		GOTO	SendData 
Send_H		MOVLW	A'H'	
		GOTO	SendData 
Send_I		MOVLW	A'I'	
		GOTO	SendData 
Send_J		MOVLW	A'J'	
		GOTO	SendData 
Send_K		MOVLW	A'K'	
		GOTO	SendData 
Send_L		MOVLW	A'L'	
		GOTO	SendData 
Send_M		MOVLW	A'M'	
		GOTO	SendData 
Send_N		MOVLW	A'N'	
		GOTO	SendData 
Send_O		MOVLW	A'O'	
		GOTO	SendData 
Send_P		MOVLW	A'P'	
		GOTO	SendData 
Send_Q		MOVLW	A'Q'	
		GOTO	SendData 
Send_R		MOVLW	A'R'	
		GOTO	SendData 
Send_S		MOVLW	A'S'	
		GOTO	SendData 
Send_T		MOVLW	A'T'	
		GOTO	SendData 
Send_U		MOVLW	A'U'	
		GOTO	SendData 
Send_V		MOVLW	A'V'	
		GOTO	SendData 
Send_W		MOVLW	A'W'	
		GOTO	SendData 
Send_X		MOVLW	A'X'	
		GOTO	SendData 
Send_Y		MOVLW	A'Y'	
		GOTO	SendData 
Send_Z		MOVLW	A'Z'	
		GOTO	SendData 
Send_a		MOVLW	A'a'	
		GOTO	SendData 
Send_b		MOVLW	A'b'	
		GOTO	SendData 
Send_c		MOVLW	A'c'	
		GOTO	SendData 
Send_d		MOVLW	A'd'	
		GOTO	SendData 
Send_e		MOVLW	A'e'	
		GOTO	SendData 
Send_f		MOVLW	A'f'	
		GOTO	SendData 
Send_g		MOVLW	A'g'	
		GOTO	SendData 
Send_h		MOVLW	A'h'	
		GOTO	SendData 
Send_i		MOVLW	A'i'	
		GOTO	SendData 
Send_j		MOVLW	A'j'	
		GOTO	SendData 
Send_k		MOVLW	A'k'	
		GOTO	SendData 
Send_l		MOVLW	A'l'	
		GOTO	SendData 
Send_m		MOVLW	A'm'	
		GOTO	SendData 
Send_n		MOVLW	A'n'	
		GOTO	SendData 
Send_o		MOVLW	A'o'	
		GOTO	SendData 
Send_p		MOVLW	A'p'	
		GOTO	SendData 
Send_q		MOVLW	A'q'	
		GOTO	SendData 
Send_r		MOVLW	A'r'	
		GOTO	SendData 
Send_s		MOVLW	A's'	
		GOTO	SendData 
Send_t		MOVLW	A't'	
		GOTO	SendData 
Send_u		MOVLW	A'u'	
		GOTO	SendData 
Send_v		MOVLW	A'v'	
		GOTO	SendData 
Send_w		MOVLW	A'w'	
		GOTO	SendData 
Send_x		MOVLW	A'x'	
		GOTO	SendData 
Send_y		MOVLW	A'y'	
		GOTO	SendData 
Send_z		MOVLW	A'z'	
		GOTO	SendData 
Send_0		MOVLW	A'0'	
		GOTO	SendData 
Send_1		MOVLW	A'1'	
		GOTO	SendData 
Send_2		MOVLW	A'2'	
		GOTO	SendData 
Send_3		MOVLW	A'3'	
		GOTO	SendData 
Send_4		MOVLW	A'4'	
		GOTO	SendData 
Send_5		MOVLW	A'5'	
		GOTO	SendData 
Send_6		MOVLW	A'6'	
		GOTO	SendData 
Send_7		MOVLW	A'7'	
		GOTO	SendData 
Send_8		MOVLW	A'8'	
		GOTO	SendData 
Send_9		MOVLW	A'9'	
		GOTO	SendData
Send_Space	MOVLW	A' '	
		GOTO	SendData 
Send_Question	MOVLW	A'?'	
		GOTO	SendData 
Send_Point	MOVLW	A'.'	
		GOTO	SendData 
Send_ArrowUp	MOVLW	B'00000010'		
		GOTO	SendData 
Send_ArrowDown	MOVLW	B'00000001'	
		GOTO	SendData 
Send_ArrowKies	MOVLW	B'00000000'	
		GOTO	SendData 
Send_ArrowRight	MOVLW	B'01111110'		
		GOTO	SendData 
Send_ArrowLeft	MOVLW	B'01111111'	
		GOTO	SendData 
Send_Dubbel	MOVLW	A':'	
		GOTO	SendData 
Send_Minus	MOVLW	A'-'	
		GOTO	SendData 
Send_Plus	MOVLW	A'+'	
		GOTO	SendData 
Send_Exclamation MOVLW	A'!'	
		GOTO	SendData
Send_GoHome
		BCF	LCDControl,ResSel
		MOVLW	B'00000010'	; Go to Home
		CALL	SendData 
		BSF	LCDControl,ResSel
		RETURN
Send_ClearScreen
		BCF	LCDControl,ResSel
		MOVLW	B'00000001'	; Clear Display
		CALL	SendData 
		MOVLW	B'00000010'	; Go to Home
		CALL	SendData 
		BSF	LCDControl,ResSel
		RETURN
Send_NextLine
		BCF	LCDControl,ResSel
		MOVLW	B'11000000'	; Goto Next Line
		CALL	SendData
		BSF	LCDControl,ResSel
		RETURN



 ; *********************************************************************

 ; *********************************************************************

 ; *********************************************************************


Init_Display
		BCF	LCDControl,ReadWrite
		BCF	LCDControl,ResSel
		CALL	SendData
		MOVLW	B'00111000'	; Funtion set
		CALL	SendData
		MOVLW	B'00001110'	; Display on/off Control
		CALL	SendData
		MOVLW	B'00000110'	; Entry Mode Set
		CALL	SendData

	; Arrow Down 'kies' button
		MOVLW	B'01000000'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000001'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000010'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00011111'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000011'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00001110'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000100'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00001110'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000101'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000110'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01000111'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000000'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel
	; Arrow Up
		MOVLW	B'01001000'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001001'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00001110'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001010'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00010101'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001011'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001100'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001101'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001110'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01001111'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000000'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel
	; Arrow Down
		MOVLW	B'01010000'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010001'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010010'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010011'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010100'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00010101'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010101'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00001110'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010110'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000100'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'01010111'	; SELECT CGRAM Adress
		CALL	SendData		
		BSF	LCDControl,ResSel
		MOVLW	B'00000000'	; CGRAM Data
		CALL	SendData
		BCF	LCDControl,ResSel

		MOVLW	B'00000001'	; Clear Display
		CALL	SendData
		MOVLW	B'00000010'	; Go to Home
		CALL	SendData
		BSF	LCDControl,ResSel
		RETURN

	        END      	; End of source code.
				; By Ronald Van Ham


 
